package com.rightsidetech.activity.service;

import com.github.pagehelper.PageInfo;
import com.rightsidetech.activity.dto.request.store.MtActivityActStoreIdReq;
import com.rightsidetech.activity.dto.response.store.MtActivityLuckInfoResp;
import com.rightsidetech.activity.dto.response.store.app.*;
import com.rightsidetech.activity.entity.*;
import com.rightsidetech.commom.base.PageRequest;
import com.rightsidetech.commom.base.ResponseData;

import java.util.List;

public interface MtActivityAppService {

    ResponseData<List<MtAppHomeResp>> list(String field);

    MtActivity selectMtActivity(Long id);

    MtActivityRule selectRuleByMoldAndActId(Long actId, String mold);

    MtActivityRule selectRuleByFieldAndActId(Long actId,String field);

    int insertUserJoin(MtUserJoinActivityApply record);

    MtUserJoinActivityApply selectUserJoinByIdAndUId(Long id,Long storeId);

    MtAppDetailResp selectDetailById(Long id);

    MtActivity selectBaseById(Long id);

    int processCount(Long actId,Long storeId);

    MtUserJoinActivityProcess processByActIdAndCode(Long actId,Byte status,Long storeId);

    ResponseData insertProcess(MtUserJoinActivityProcess process);

    ResponseData<PageInfo<MtActivityRecordResp>> recordPage(PageRequest req,Long storeId);

    List<MtActivityOrderResp> orderAndActivity(Long storeId);

    List<String> selectProcessPic(Long storeId,Long actId);

    List<CompareActResp> selectCompareAct(Long storeId, Long areaId);

    int prizeCount(Long actId,Long storeId);

    List<MtLotteryResp> selectLotteryResp(Long actId, Long storeId);

    PageInfo<MtActivityLuckInfoResp> selectLuckResp(MtActivityActStoreIdReq req);

    int updateProcess(MtUserJoinActivityProcess process);

    List<MtActivityRule> selectRuleList(Long actId,String mold);

    int updateRule(MtActivityRule rule);

    String selectRuleDetail(Long actId);

    List<String> selectPicListByActId(Long actId);

    List<MtActivity> selectHeadList(String dicCode);

    List<MtUserJoinActivityProcess> selectProcessList(Long actId);

    int updateUserJoin(Long actId, Long storeId,Short status);

    MtActivityRuleBusiness selectBusinessByActIdAndComId(Long actId,String commoditId);

    List<CompareActResp> selectCompareActJiZan(Long actId, Long areaId);

    int insertPrize(MtUserJoinActivityPrize prize);

    PageInfo<MtActivityRecordDetailResp> selectRecordDetail(PageRequest req,Long storeId);
}
